package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目计划对象 pro_plan
 *
 * @author ruoyi
 * @date 2024-10-07
 */
public class ProPlan extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 项目编号
     */
    @Excel(name = "项目编号")
    private Long projectId;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;

    /**
     * 计划开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartDate;

    /**
     * 计划完成日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划完成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planCompleteDate;

    /**
     * 计划工作内容
     */
    @Excel(name = "计划工作内容")
    private String planWorkContent;

    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualStartTime;

    /**
     * 实际结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualEndTime;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Long status;

    /**
     * 确认完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "确认完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmCompleteTime;

    /**
     * 工作计划用时
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "工作计划用时", width = 30, dateFormat = "yyyy-MM-dd")
    private BigDecimal workPlanTime;

    /**
     * 工作完成用时
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "工作完成用时", width = 30, dateFormat = "yyyy-MM-dd")
    private BigDecimal workCompleteTime;

    /**
     * 目前耗时
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "目前耗时", width = 30, dateFormat = "yyyy-MM-dd")
    private Date consumTime;

    /**
     * 责任人ID
     */
    @Excel(name = "责任人ID")
    private Long userId;

    /**
     * 责任人
     */
    @Excel(name = "责任人")
    private String duty;

    /**
     * 登记团队
     */
    @Excel(name = "登记团队")
    private String registrant;

    /**
     * 优先级
     */
    @Excel(name = "优先级")
    private Long priority;

    /**
     * 子级任务标志
     */
    @Excel(name = "子级任务标志")
    private String childTaskFlag;

    /**
     * 项目完成确认人
     */
    @Excel(name = "项目完成确认人")
    private String planConfirmer;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remake;

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getProjectId() {
        return projectId;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setPlanStartDate(Date planStartDate) {
        this.planStartDate = planStartDate;
    }

    public Date getPlanStartDate() {
        return planStartDate;
    }

    public void setPlanCompleteDate(Date planCompleteDate) {
        this.planCompleteDate = planCompleteDate;
    }

    public Date getPlanCompleteDate() {
        return planCompleteDate;
    }

    public void setPlanWorkContent(String planWorkContent) {
        this.planWorkContent = planWorkContent;
    }

    public String getPlanWorkContent() {
        return planWorkContent;
    }

    public void setActualStartTime(Date actualStartTime) {
        this.actualStartTime = actualStartTime;
    }

    public Date getActualStartTime() {
        return actualStartTime;
    }

    public void setActualEndTime(Date actualEndTime) {
        this.actualEndTime = actualEndTime;
    }

    public Date getActualEndTime() {
        return actualEndTime;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setConfirmCompleteTime(Date confirmCompleteTime) {
        this.confirmCompleteTime = confirmCompleteTime;
    }

    public Date getConfirmCompleteTime() {
        return confirmCompleteTime;
    }

    public void setWorkPlanTime(BigDecimal workPlanTime) {
        this.workPlanTime = workPlanTime;
    }

    public BigDecimal getWorkPlanTime() {
        return workPlanTime;
    }

    public void setWorkCompleteTime(BigDecimal workCompleteTime) {
        this.workCompleteTime = workCompleteTime;
    }

    public BigDecimal getWorkCompleteTime() {
        return workCompleteTime;
    }

    public void setConsumTime(Date consumTime) {
        this.consumTime = consumTime;
    }

    public Date getConsumTime() {
        return consumTime;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }

    public String getDuty() {
        return duty;
    }

    public void setRegistrant(String registrant) {
        this.registrant = registrant;
    }

    public String getRegistrant() {
        return registrant;
    }

    public void setPriority(Long priority) {
        this.priority = priority;
    }

    public Long getPriority() {
        return priority;
    }

    public void setChildTaskFlag(String childTaskFlag) {
        this.childTaskFlag = childTaskFlag;
    }

    public String getChildTaskFlag() {
        return childTaskFlag;
    }

    public void setPlanConfirmer(String planConfirmer) {
        this.planConfirmer = planConfirmer;
    }

    public String getPlanConfirmer() {
        return planConfirmer;
    }

    public void setRemake(String remake) {
        this.remake = remake;
    }

    public String getRemake() {
        return remake;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("projectId", getProjectId())
                .append("projectName", getProjectName())
                .append("planStartDate", getPlanStartDate())
                .append("planCompleteDate", getPlanCompleteDate())
                .append("planWorkContent", getPlanWorkContent())
                .append("actualStartTime", getActualStartTime())
                .append("actualEndTime", getActualEndTime())
                .append("status", getStatus())
                .append("confirmCompleteTime", getConfirmCompleteTime())
                .append("workPlanTime", getWorkPlanTime())
                .append("workCompleteTime", getWorkCompleteTime())
                .append("consumTime", getConsumTime())
                .append("userId", getUserId())
                .append("duty", getDuty())
                .append("registrant", getRegistrant())
                .append("priority", getPriority())
                .append("childTaskFlag", getChildTaskFlag())
                .append("planConfirmer", getPlanConfirmer())
                .append("remake", getRemake())
                .toString();
    }
}
